/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package DataAcces;

import Entidades.Proveedor;
import java.awt.HeadlessException;
import java.sql.*;
import java.util.ArrayList;
import javax.swing.JOptionPane;

/**
 *
 * @author Bazan
 */
public class DAOProveedor {

    private static Connection cnx = null;
    private static PreparedStatement pstm = null;
    private static ResultSet resultado = null;

    public DAOProveedor() {
    }

    public void Registrar_Proveedor(Proveedor proveedor) {

        String sql = "INSERT INTO BDACCELCOM.dbo.PROVEEDOR VALUES(?,?,?,?,?,?)";

        try {
            cnx = Conexion.ObtenerConeccion();
            pstm = cnx.prepareStatement(sql);

            pstm.setString(1, proveedor.getRuc());
            pstm.setString(2, proveedor.getRazonSocial());
            pstm.setString(3, proveedor.getContacto());
            pstm.setString(4, proveedor.getDireccion());
            pstm.setString(5, proveedor.getTelefono());
            pstm.setString(6, proveedor.getEmail());

            pstm.executeQuery();
            pstm.close();
            cnx.close();
        } catch (SQLException ex) {
            System.out.println("Error RegistrarProvedor:" + ex.getMessage());
        }
    }

    public ArrayList<Proveedor> BuscarProveedorRuc(String ruc) {

        Proveedor prove = new Proveedor();
        ArrayList<Proveedor> lista = new ArrayList<>();

        String sql = "select * FROM BDACCELCOM.dbo.PROVEEDOR"
                + " WHERE BDACCELCOM.dbo.PROVEEDOR.RUC= ? ";

        try {

            cnx = Conexion.ObtenerConeccion();
            pstm = cnx.prepareStatement(sql);
            pstm.setString(1, ruc);
            resultado = pstm.executeQuery();

            if (resultado.next()) {

                if (resultado.getRow() == 0) {

                    JOptionPane.showMessageDialog(null, "No encontro ninguna coincidencia");
                } else {
                    prove.setIdProveedor(Integer.parseInt(resultado.getString("IdProveedor")));
                }
                prove.setRuc(resultado.getString("RUC"));
                prove.setRazonSocial(resultado.getString("RazonSocial"));
                prove.setContacto(resultado.getString("Contacto"));
                prove.setDireccion(resultado.getString("Direccion"));
                prove.setTelefono(resultado.getString("Telefono"));
                prove.setEmail(resultado.getString("Email"));

                lista.add(prove);

            }

            pstm.close();
            //cnx.close();           


        } catch (SQLException | HeadlessException e) {

            System.out.println("Error BuscarProveedor:" + e.getMessage());
        }


        return lista;
    }

    public ArrayList<Proveedor> MostrarAllProveedores() {

        Proveedor prove;
        ArrayList<Proveedor> listapro = new ArrayList<>();

        String sql = "select IdProveedor,RUC,RazonSocial,Contacto,Direccion,Telefono,Email FROM BDACCELCOM.dbo.PROVEEDOR";

        try {

            cnx = Conexion.ObtenerConeccion();
            pstm = cnx.prepareStatement(sql);
            resultado = pstm.executeQuery();

            while (resultado.next()) {

                prove = new Proveedor();

                prove.setIdProveedor(Integer.parseInt(resultado.getString("IdProveedor")));
                prove.setRuc(resultado.getString("RUC"));
                prove.setRazonSocial(resultado.getString("RazonSocial"));
                prove.setContacto(resultado.getString("Contacto"));
                prove.setDireccion(resultado.getString("Direccion"));
                prove.setTelefono(resultado.getString("Telefono"));
                prove.setEmail(resultado.getString("Email"));

                listapro.add(prove);

            }

            pstm.close();
            //cnx.close();

        } catch (SQLException | NumberFormatException e) {

            System.out.println("Error ALLProveedor:" + e.getMessage());
        }

        return listapro;
    }

    public Proveedor BuscarId(int id) {

        Proveedor prove = null;
        //ArrayList<Proveedor> listapro = new ArrayList<>();

        String sql = "SELECT IdProveedor,RUC\n"
                + "      ,RazonSocial\n"
                + "      ,Contacto\n"
                + "      ,Direccion\n"
                + "      ,Telefono\n"
                + "      ,Email\n"
                + "  FROM BDACCELCOM.dbo.PROVEEDOR\n"
                + "  where BDACCELCOM.dbo.PROVEEDOR.IdProveedor=?";

        try {

            cnx = Conexion.ObtenerConeccion();
            pstm = cnx.prepareStatement(sql);
            pstm.setInt(1, id);
            resultado = pstm.executeQuery();

            while (resultado.next()) {

                prove = new Proveedor();

                prove.setIdProveedor(Integer.parseInt(resultado.getString("IdProveedor")));
                prove.setRuc(resultado.getString("RUC"));
                prove.setRazonSocial(resultado.getString("RazonSocial"));
                prove.setContacto(resultado.getString("Contacto"));
                prove.setDireccion(resultado.getString("Direccion"));
                prove.setTelefono(resultado.getString("Telefono"));
                prove.setEmail(resultado.getString("Email"));                
                
            }

            pstm.close();
            //cnx.close();

        } catch (SQLException | NumberFormatException e) {

            System.out.println("Error ALLProveedor:" + e.getMessage());
        }

        return prove;

    }
}
